package app

import (
	"os"
	"sc_eac_passer/internal/patch"

	"gitee.com/StarCitizen_CN/logger"
)

func Init() {

	if !isLaunchedInGamePath() {
		ShowError("请确认本工具运行于游戏目录下")
		os.Exit(0)
	}

	if len(os.Args) < 5 {
		ShowError("请确认使用 官方启动器 （RSI Launcher） 启动游戏。")
		os.Exit(0)
	}

	if !isInstalledScModding() {
		ShowError("请确认汉化文件正确安装。（若操作正常请检查杀毒文件安全区）")
		os.Exit(0)
	}

	// 检测补丁更新
	doPatcher()

}

func isLaunchedInGamePath() bool {
	return fileExists("Bin64/StarCitizen.exe")
}

func isInstalledScModding() bool {
	return (fileExists(dbHelpDLLPath) || fileExists(dbHelpDLLBackPath)) && fileExists("data/config.xml")
}

func doPatcher() {
	// 更新补丁
	ok, err := patch.Patching()
	if err != nil {
		logger.Err(err)
		ErrAlertAndJumpUrl(err, BOX_QG_LINK, "更新补丁失败", "请截图并反馈至群 940696487 错误详情，点击确认将自动跳转。")
	}
	logger.Var("更新补丁：%v", ok)
}

func fileExists(filename string) bool {
	info, err := os.Stat(filename)
	if os.IsNotExist(err) {
		return false
	}
	return !info.IsDir()
}
